function Star(uname, age) {
  this.uname = uname
  this.age = age

}
/* 
Star.prototype.sing = function() {
  console.log(this.uname + 'singing');
}
 */


Star.prototype = {
  //如果我们修改了原来的原型对象，给原型对象赋值的是一个对象，则必须手动利用constructor指回原来的构造函数
  constructor: Star,
  sing: function() {
    console.log(this.uname + 'singing');
  },
  dance: function() {
    console.log(this.uname + 'dancing');
  }

}




let ldh = new Star('刘德华', 18)
let zxy = new Star('张学友', 20)

console.log(ldh);

console.log(ldh.__proto__ === Star.prototype); //true 对象原型__proto__和原型对象prototype是等价的
//__proto__  是非标准属性  一般不拿来使用
console.log(Star.prototype);
console.log(ldh.__proto__);
console.log(Star.prototype.constructor);
console.log(ldh.__proto__.constructor);